#ifndef DATAFORMATTER_H
#define DATAFORMATTER_H

#include <QString>
#include <QByteArray>

/**
 * @brief 数据格式转换工具类
 * 提供文本/十六进制输入解析与显示字符串生成。
 */
class DataFormatter {
public:
    /**
     * @brief 解析用户输入为二进制数据
     * @param input 原始输入字符串
     * @param hexMode 是否为十六进制输入模式
     * @param ok 输出解析是否成功
     * @param error 输出错误信息（当解析失败时）
     * @return 解析得到的二进制数据
     */
    static QByteArray parseInput(const QString &input, bool hexMode, bool *ok, QString *error);

    /**
     * @brief 将二进制数据转换为显示字符串
     * @param data 二进制数据
     * @param hexMode 是否以十六进制显示
     * @return 显示用字符串（十六进制或文本，文本模式替换不可打印字符为'.'）
     */
    static QString toDisplayString(const QByteArray &data, bool hexMode);
};

#endif // DATAFORMATTER_H